/* tsc demo01.ts 会将 ts 文件 解析为 js 文件, 再使用 node demo01.js 即可执行 */
console.log('tsc demo01.ts')

/* 简化执行: npm i ts-node -g, ts-node demo01.ts 即可不用生成 js 文件再使用 node 命令 */

/*
 * 数据类型: number/string/boolean/undefined/null
 *      undefined: 表示声明但未赋值的变量值
 *      null: 表示声明了变量并已赋值, 值为 null (能找到, 值就是 null)
 *
 * 数组:
 *      1. let names: string[] = []
 *      2. let names: string[] = new Array()
 *
 *      push() / forEach() / some() 遍历数组, 返回 true 就停止循环, 返回 false 则继续
 *
 * 对象:
 *      let person = {
 *          name: '张三',
 *          age: 18,
 *          sayHi: function() {...}
 *      }
 *
 * 对象类型注解(对象结构的提前设计):
 *      let person: {
 *          name: string;
 *          age: number;
 *          sayHi: () => void;
 *      } = {person 对象的具体内容}
 *
 *  接口(接口名称约定以 I 开头):
 *      声明:
 *          interface IUser {
 *              name: string
 *              age: number
 *          }
 *      使用:
 *          let p1: IUser = {
 *              name: 'heihei',
 *              age: 18
 *          }
 *
 *  枚举(默认下一个枚举的值是自增长的, 不设置第一个默认为 0):
 *      enum Gender {
 *          Female,
 *          Male
 *      }
 *      let userGender: Gender
 *      userGender = Gender.Female
 *      console.log(userGender) // 0
 */


